Today's networked computing environments are used in businesses for generating and storing large amounts of critical data. The systems used for moving, storing, and manipulating this critical data are expected to have high performance, high capacity, and high reliability, while being reasonably priced.
Fibre Channel is a high performance, serial interconnect standard designed for bi-directional, point-to-point communications between servers, storage systems, workstations, switches, and hubs. It offers a variety of benefits over other link-level protocols, including efficiency and high performance, scalability, simplicity, ease of use and installation, and support for popular high level protocols.
Fibre Channel employs a topology known as a “fabric” to establish connections between nodes. A fabric is a network of switches for interconnecting a plurality of devices without restriction as to the manner in which the switch can be arranged. A fabric can include a mixture of point-to-point and arbitrated loop topologies.
In Fibre Channel, a channel is established between two nodes where the channel's primary task is to transport data from one point to another at high speed with low latency. The Fibre Channel switch provides flexible circuit/packet switched topology by establishing multiple simultaneous point-to-point connections. Because these connections are managed by the switches or “fabric elements” rather than the connected end devices or “nodes”, fabric traffic management is greatly simplified from the perspective of the device.
Fibre Channel data and other digital data are typically transmitted over various metallic transmission media, in the form of a series of square waves or pulses. Transmission of digital data therefore requires the use of a low-pass channel or cable with a bandwidth large enough to accommodate the essential frequency content of the data stream. High speed digital signals transmitted over cables or other transmission media may be severely distorted because the cable is not ideal and is dispersive in that each received pulse is affected by adjacent pulses, causing a phenomena called intersymbol interference. Intersymbol interference is a major source of bit errors in the reconstructed data stream at the receiver. To correct for intersymbol interference the pulse shape of the signal can be controlled in the overall system. There is a limit, however, to the data transmission rate and/or the distance over which signals may be transmitted because of intersymbol interference.
The data transmission rate for an information bearing signal on a transmission line is limited by data jitter, or the tendency of transitions to occur at different points during the respective signal periods.
The distance over which an information bearing signal may be transmitted on a transmission line is primarily limited by the phase distortion introduced by the transmission line. Progressive alteration of the pulse shape from the predetermined pulse shape for which a receiver is designed to operate may lead to transmission errors and limit the maximum range of the transmission.
Several prior art approaches attempt to alleviate the problems arising from distortion. One approach, known as receiver equalization, involves processing the received signal to make it more nearly correspond to the predetermined pulse shape.
A second prior art approach, referred to as predistortion or transmitter equalization, employs a separate mechanism at the output of the transmitter to alter the shape of the pulse introduced onto the transmission line. The predistortion is intended to be the inverse of the distortion resulting from inherent cable losses. This technique is suitable when the length and material of the transmission line is known so that the distortion can be estimated and a fixed predistortion factor can be preprogrammed.
The Fibre Channel protocol (“FCP”) uses a single Open-Systems-Interface-like (OSI-like) stack architecture. Devices that are operable with the Fibre Channel protocol typically include a controller (an “FC controller”) that embodies the functionality of some of the middle-layers of the FCP stack. Furthermore, FC controllers may involve a “controller chip”. As part of the middle-layer FCP functionality, these FC controllers monitor the state of information transmissions over the FC communication links and are designed to take appropriate recovery measures should an unresponsive communication link be encountered.
Some FC controllers are included in integrated circuits that provide a serializer-deserializer (SERDES) function. SERDES circuits may also be referred to in the art as internal transmitter/receiver (iTR) circuits. SERDES circuits are generally incorporated into integrated circuits and operate at ultra high speeds (over two gigabits per second) and convert parallel data to serial data and serial data to parallel data. Modern day SERDES generally are capable of converting 10-bit or 20-bit parallel data into serial data and serial data to 10-bit or 20-bit parallel data. The interfacing requirements between a parallel data bus and a SERDES IC on a printed circuit board are implemented by a protocol controller device.
Fibre Channel links/ports can operate (i.e., receive and/or transmit data) in different speeds, for example, 1 gigabit per second (“G”), 2 G, 4 G, 8 G, and 10 G (the speeds actually specified by FC standards may be slightly different, e.g., 4 G is actually 4.25 gigabit per second). An FC controller needs to be configured and managed efficiently, especially with increasing throughput rates. If an FC link encounters too many errors within a defined period of time (e.g., more than one error every seven minutes), a loop initialization primitive (LIP) is initiated automatically, further reducing throughput. In at least some cases, an FC link will not tolerate a Bit Error Rate (BER) greater than one error every 1012 (ten to the twelfth power) bits. If FC controllers at the ends of an FC link do not match with respect to speeds and other settings including amplitude adjustment, equalization adjustment, and pre-emphasis level, the link may not work at all. Since the settings may depend on the length of a cable in the link, one solution is to restrict the use of cables to those with known and approved cable lengths. Alternatively, settings can be changed manually, e.g., using a graphical user interface, at both ends of the link in the event of a change in cable length.